.TH std::bitset::operator[] 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::bitset::operator[] \- std::bitset::operator[]

.SH Synopsis
   bool operator[]( std::size_t pos ) const; \fB(1)\fP (constexpr since C++11)
   reference operator[]( std::size_t pos );  \fB(2)\fP (constexpr since C++23)

   Accesses the bit at position pos. The first version returns the value of the bit,
   the second version returns an object of type std::bitset::reference that allows
   modification of the value.

   Unlike test(), does not throw exceptions: the behavior is undefined if pos is out of
   bounds.

.SH Parameters

   pos - position of the bit to return

.SH Return value

   1) The value of the requested bit.
   2) An object of type std::bitset::reference, which allows writing to the requested
   bit.

.SH Exceptions

   \fI(none)\fP

.SH Example


// Run this code

 #include <bitset>
 #include <cstddef>
 #include <iostream>

 int main()
 {
     std::bitset<8> b1{0b00101010}; // binary literal for 42

     for (std::size_t i = 0; i < b1.size(); ++i)
         std::cout << "b1[" << i << "]: " << b1[i] << '\\n';
     b1[0] = true; // modifies the first bit through bitset::reference

     std::cout << "After setting bit 0, b1 holds " << b1 << '\\n';
 }

.SH Output:

 b1[0]: 0
 b1[1]: 1
 b1[2]: 0
 b1[3]: 1
 b1[4]: 0
 b1[5]: 1
 b1[6]: 0
 b1[7]: 0
 After setting bit 0, b1 holds 00101011

   Defect reports

   The following behavior-changing defect reports were applied retroactively to
   previously published C++ standards.

     DR    Applied to         Behavior as published              Correct behavior
                      1. the description was missing in the
   LWG 11  C++98      C++ standard                          1. description added
                      2. there was only the non-const       2. added the const overload
                      overload
                      the behavior of reading the bit at
   LWG 907 C++98      pos was equivalent                    avoids mentioning test()
                      to that of test(pos), but test() may
                      throw exceptions

.SH See also

   test accesses specific bit
        \fI(public member function)\fP
